<?php
namespace Reezy\OAuth\Contract;

use Psr\Http\Message\ServerRequestInterface;
use Reezy\OAuth\OAuthRedirectException;

interface OAuthManagerInterface
{
    /**
     * 移动应用使用授权码登录并返回用户ID
     *
     * @param $name
     * @param $code
     * @return int
     */
    function login($name, $code): int;


    /**
     * H5 授权登录，返回用户ID，可通过异常 OAuthRedirectException 重定向到授权页的响应对象
     *
     * @param ServerRequestInterface $request
     * @param string|null $name
     * @return int
     * @throws OAuthRedirectException
     */
    public function oauth(ServerRequestInterface $request, string $name = null): int;
}